Oracle的DBLink远程关联查表批量查询慢慢的问题

您所在的位置:网站首页 oracle 跨库查询 dblink Oracle的DBLink远程关联查表批量查询慢慢的问题

Oracle的DBLink远程关联查表批量查询慢慢的问题

2024-06-17 13:10| 来源: 网络整理| 查看: 265

对于几个本库表关联dblink远程表批量查询慢的问题

select m.cusNo, p.name, t.salary from baseinfo@bigdata p, moneyPay@bigdata t, emp m where p.id = t.id and p.cusNo = m.ssno and m.cusNo in ('A001', 'A002', 'A003');

baseinfo p表、moneyPay t 表都是远程表;emp m 是本库表。 如果三个表的数据量少的情况下,效率还算可以。要是三个表的数据量很大,效率就慢了。 解决思路: 不用本库表与远程表做条件关联,先把几个远程表间关联,得出想要的结果集,将其作为临时表,与本库的表再作关联。

select m.cusNo, tt.name, tt.salary from (select p.cusNo, p.name, t.salary from baseinfo@bigdata p, moneyPay@bigdata t where p.id = t.id) tt, emp m where m.ssno = tt.cusNo and m.cusNo in ('A001', 'A002', 'A003');

对于这个sql,查询数据量少,效率可能很慢。 因为大部分时间耗费在dblink搬数据上,所以查询3条数据,与查询1万条数据,效率差异上就不大了。 这种方式适合批量跑数。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3